
/**
 * 拦截http请求
 * request：拦截请求前
 * 可在这里加上请需要的token之类的
 * response： 拦截请求后
 * 可以对请求的响应进行处理
 * requestError： 拦截请求失败前
 * responseError： 拦截请求失败后
 * */ 
// 根据环境自动判断是开发还是生产环境
const baseUrl = process.env.NODE_ENV === 'development'?'/mock':'';
export default (ngModule) => {
  ngModule.factory('myInterceptor', function ($q) {
    var interceptor = {
      'request': function (config) {
        config.url =  baseUrl + config.url;
        return config; // 或者 $q.when(config); 
      },
      'response': function (response) {
        let { code, data, msg } = response.data;
        if(code == '200'){
          return data;
        }else{
          console.log(msg);
        }
        // 响应成功
        return response; // 或者 $q.when(config); 
      },
      'requestError': function (rejection) {
        // 请求发生了错误，如果能从错误中恢复，可以返回一个新的请求或promise 

        console.log(rejection)
        return response; // 或新的promise 
        // 或者，可以通过返回一个rejection来阻止下一步
        // return $q.reject(rejection); 
      },
      'responseError': function (rejection) {
        console.log(rejection)
        // 请求发生了错误，如果能从错误中恢复，可以返回一个新的响应或promise 
        return rejection; // 或新的promise 
        // 或者，可以通过返回一个rejection来阻止下一步
        // return $q.reject(rejection); 
      }
    };
    return interceptor;
  })
}